/*
 * @Descripttion:
 * @version:
 * @Author: sueRimn
 * @Date: 2025-06-07 11:25:14
 * @LastEditors: sueRimn
 * @LastEditTime: 2025-08-26 19:45:07
 */


#include "dyp.h"
#include "public.h"
#include "stdio.h"
#include "tim.h"

extern uint16_t aucAdcBuf[40];

#define FALL_THRESHOLD 992

void dypMonitRunTask()
{
    // if (pstDev->stDevDyp3.bIsMeasEndFlag == false)
    // {

    // 	return;
    // }

    // pstDev->stDevDyp1.bIsMeasEndFlag = false;
    // pstDev->stDevDyp2.bIsMeasEndFlag = false;
    // pstDev->stDevDyp3.bIsMeasEndFlag = false;

    HAL_GPIO_WritePin(DYP_OUT_1_GPIO_Port, DYP_OUT_1_Pin, 0);
    HAL_GPIO_WritePin(DYP_OUT_2_GPIO_Port, DYP_OUT_2_Pin, 0);
    HAL_GPIO_WritePin(DYP_OUT_3_GPIO_Port, DYP_OUT_3_Pin, 0);

    // TIM5->ARR = 5000;

    TIM2->CNT = 0;
    TIM2->CCR1 = 0;
    TIM2->CCR2 = 0;
    TIM2->CCR3 = 0;

    TIM5->CNT = 0;
    TIM5->CR1 |= TIM_CR1_CEN;

    
}

void fallMonitRunTask(void)
{

//    printf("  adc1 = %.2f  adc2 = %.2f   adc3 = %.2f  adc4 = %.2f\r\n",
//         (float)pstDev->stDevFall.pucFallAdcBuf[0] / 4096.0f * 3.3f, (float)pstDev->stDevFall.pucFallAdcBuf[1] / 4096.0 * 3.3,
//         (float)pstDev->stDevFall.pucFallAdcBuf[2] / 4096.0f * 3.3f, (float)pstDev->stDevFall.pucFallAdcBuf[3] / 4096.0 * 3.3);

    if ((float)pstDev->stDevFall.pucFallAdcBuf[0] < FALL_THRESHOLD)
    {
        pstDev->stDevFall.bIsFall1 = true;
    }
    else
        pstDev->stDevFall.bIsFall1 = false;

    if ((float)pstDev->stDevFall.pucFallAdcBuf[1] < FALL_THRESHOLD)
        pstDev->stDevFall.bIsFall2 = true;
    else
        pstDev->stDevFall.bIsFall2 = false;

    if ((float)pstDev->stDevFall.pucFallAdcBuf[2] < FALL_THRESHOLD)
        pstDev->stDevFall.bIsFall3 = true;
    else
        pstDev->stDevFall.bIsFall3 = false;

    if ((float)pstDev->stDevFall.pucFallAdcBuf[3] < FALL_THRESHOLD)
        pstDev->stDevFall.bIsFall4 = true;
    else
        pstDev->stDevFall.bIsFall4 = false;

}


void dypTimeCallbak() 
{
    
    TIM5->CR1 &= ~TIM_CR1_CEN;

    HAL_GPIO_WritePin(DYP_OUT_1_GPIO_Port, DYP_OUT_1_Pin, 1);
    HAL_GPIO_WritePin(DYP_OUT_2_GPIO_Port, DYP_OUT_2_Pin, 1);
    HAL_GPIO_WritePin(DYP_OUT_3_GPIO_Port, DYP_OUT_3_Pin, 1);
    //     if (TIM5->ARR == 5000)
    //     {
    //         HAL_GPIO_WritePin(DYP_1_OUT_GPIO_Port, DYP_1_OUT_Pin, 1);
    //         HAL_GPIO_WritePin(DYP_2_OUT_GPIO_Port, DYP_2_OUT_Pin, 1);
    //         HAL_GPIO_WritePin(DYP_3_OUT_GPIO_Port, DYP_3_OUT_Pin, 1);
    //         TIM5->ARR = 100000;

    //     }
    //     else
    //     {
    //         if (pstDev->stDevDyp1.bIsMeasEndFlag == false)
    //             pstDev->stDevDyp1.eDevStat = SEN_ERR;
    //         if (pstDev->stDevDyp2.bIsMeasEndFlag == false)
    //             pstDev->stDevDyp2.eDevStat = SEN_ERR;
    //         if (pstDev->stDevDyp3.bIsMeasEndFlag == false)
    //             pstDev->stDevDyp3.eDevStat = SEN_ERR;

    //         pstDev->stDevDyp1.bIsMeasEndFlag = true;
    //         pstDev->stDevDyp2.bIsMeasEndFlag = true;
    //         pstDev->stDevDyp3.bIsMeasEndFlag = true;

    //         TIM5->CR1 &= ~TIM_CR1_CEN;
    //     }

}
